home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 7
/
Aminet 7 - August 1995.iso
/
Aminet
/
comm
/
tcp
/
AmigaTCP.lha
/
AmigaTCP
/
src
/
machdep.h
< prev
next >
Wrap
C/C++ Source or Header
|
1989-06-24
|
2KB
|
97 lines
/* This file defines certain low level operations and characteristics that
* are likely to be machine dependent.
*/
#if (MPU8086 || MPU8080 || vax)
#define LITTLE_ENDIAN /* Low order bytes are first in memory */
#endif
#ifdef AMIGA
#ifdef AMIGADEVDRV
#define disable() Forbid() /* doesn't really return a value */
#define restore(intst) Permit()
#else
#define disable() (0) /* got to return a value */
#define restore(intst) /* but we're not gonna do anything */
#endif
#ifdef WINDOWIO
#ifdef putchar
#undef putchar
#endif
#ifdef fflush
#undef fflush
#endif
#define putchar(c) amigaputchar(c)
#ifdef LATTICE
#define fflush(fp) ((fp)==stdout ? amigaflush() : _flsbf(-1, fp))
#else
#define fflush(fp) ((fp)==stdout ? amigaflush() : flsh_(fp, -1))
#endif
/* this has to be the same as in stdio.h */
#ifdef LATTICE
#define index strchr
#endif
#endif
#ifdef LATTICE
#undef printf
#endif
#endif WINDOWIO
/* These two lines assume that your compiler's longs are 32 bits and
* shorts are 16 bits. It is already assumed that chars are 8 bits,
* but it doesn't matter if they're signed or unsigned.
*/
typedef long int32; /* 32-bit signed integer */
typedef unsigned short int16; /* 16-bit unsigned integer */
#define bcopy(a,b,cnt) movmem(a,b,cnt)
#ifdef LITTLE_ENDIAN
int32 ntohl();
int16 ntohs();
#else /* Degenerate case for Big Endian machines */
#define ntohl(x) (x)
#define ntohs(x) (x)
#endif
#define min(x,y) ((x)<(y)?(x):(y))
#define max(x,y) ((x)>(y)?(x):(y))
int16 cksum();
/* Host-to-network and network-to-host are symmetrical */
#define htonl(x) ntohl(x)
#define htons(x) ntohs(x)
#ifdef MPU8080 /* Assembler routines are available */
int16 hinibble(),lonibble(),hibyte(),lobyte(),hiword(),loword();
#else
/* Extract a short from a long */
#define hiword(x) ((int16)((x) >> 16))
#define loword(x) ((int16)(x))
/* Extract a byte from a short */
#define hibyte(x) (((x) >> 8) & 0xff)
#define lobyte(x) ((x) & 0xff)
/* Extract nibbles from a byte */
#define hinibble(x) (((x) >> 4) & 0xf)
#define lonibble(x) ((x) & 0xf)
#endif
/* Define null object pointer in case stdio.h isn't included */
#ifndef NULL
/* General purpose NULL pointer */
#define NULL (void *)0
#endif
#define NULLCHAR (char *)NULL /* Null character pointer */
#define NULLFP (int (*)())0 /* Null pointer to function returning int */
#define NULLVFP (void (*)())0 /* Null pointer to function returning void */
#define NULLFILE (FILE *)NULL /* Null file pointer */